package pe.edu.upc.dsd.qwerty.wsreserva.service;

import java.util.List;

import javax.jws.WebParam;
import javax.jws.WebService;

import pe.edu.upc.dsd.qwerty.wsreserva.model.Asiento;
import pe.edu.upc.dsd.qwerty.wsreserva.model.Pasajero;
import pe.edu.upc.dsd.qwerty.wsreserva.model.Vuelo;
import pe.edu.upc.dsd.qwerty.wsreserva.util.bean.BeanRespuesta;
import pe.edu.upc.dsd.qwerty.wsreserva.util.bean.BeanRespuestaPasajero;

@WebService
public interface VueloService {

	public List<Vuelo> obtenerListaVuelos();
	public Vuelo obtenerVuelo(@WebParam(name="idVuelo")String idVuelo);
	public List<Asiento> obtenerAsientos(@WebParam(name="idVuelo")String idVuelo);
	public Asiento obtenerAsiento(@WebParam(name="idAsiento")Integer idAsiento);
	/**
	 * cuando un clietne reserva un asiento, debe enviar datos para autenticacion
	 * @param usuario
	 * @param password
	 * @param idAsiento
	 * @return
	 */
	public BeanRespuesta reservarAsiento(@WebParam(name="usuario")String usuario, @WebParam(name="password")String password, @WebParam(name="idAsiento")Integer idAsiento);
	
	/**
	 * cuando un clietne reserva un asiento, debe enviar datos para autenticacion y pago
	 * @param usuario
	 * @param password
	 * @param idAsiento
	 * @return
	 */
	public BeanRespuesta comprarAsiento(@WebParam(name="usuario")String usuario, @WebParam(name="password")String password, @WebParam(name="idAsiento")Integer idAsiento);
	
	/**
	 * cuando se anula la compra o reserva de vuelos
	 * @param idAsiento
	 * @return
	 */
	public BeanRespuesta liberarAsiento(@WebParam(name="idAsiento")Integer idAsiento);
	
	public BeanRespuestaPasajero registrarPasajero(@WebParam(name="pasajero")Pasajero pasajero);
	
	public BeanRespuesta validarUsuario(@WebParam(name="usuario")String usuario,@WebParam(name="password")String password);
	
	public BeanRespuestaPasajero obtenerPasajero(@WebParam(name="idPasajero")Integer idPasjaero);
}
